
100  REM  PRGM DCVL FISH ECHO 6/26/83
120  REM  DECONVOLUTION OF FISH ECHO PDF,C.S.CLAY, J ACOUST SOC AM VOL 73,1989-1994 (1983)
140  REM   FOR THE PRGM: I MAKE SOME ALTERATIONS OF NOTATION TO HANDLE UPPER-LOWER CASE LETTER DUPLICATIONS.
160  REM 
180  REM  DECONVOLVE PROGRAM HAS 3 PARTS
200  REM 
220  REM        1) COMPUTE WE(E), ECHO PDF FROM 'RAW' EXPERIMENTAL ECHO AMPLITUDE DISTRIBUTION ER(E).
240  REM  ECHO AMPLITUDES MUST BE EQUALLY SPACED ON A LOG SCALE.
260  REM  ECHO AMPLITUDES CAN BE ENTERED AS A 'READ FILE' OR AS DATA IN THE PRGM.
280  REM  SONAR SYSTEM PARAMETERS ENTER HERE
300  REM 
320  REM        2) COMPUTE WT(B), PDF OF ECHO AMPLITUDE B DUE TO SONAR BEAM PATTERN.
340  REM   WT(B) COMES FROM EVALUATION FOR THE TRANSDUCER. ONE CAN USE EHRENBERG'S APPROXIMATION. EQ(8,9),CLAY 1983
360  REM    WT(B)=(AG*B^H)/(K*RT)^2. K=2*PI*F/C. RT=CIRCULAR TRANSDUCER RADIUS. G AND H ARE CONSTANTS. AG=2.08,H=-.793
380  REM 
400  REM       3) COMPUTE DECONVOLUTION
420  REM   WF(E) , PDF OF ECHO AMPLITUDES AFTER REMOVING EFFECT OF TRANSDUCER.
440  REM  USE RECURSIVE ALGORITHM TO DO LONG DIVISION OF POLYNOMIALS.
460  DIM B(99),WT(50),WF(99),WE(100),ER(20)
480 PI = 4 *  ATN (1)
500 A =  LOG (10) / 10: REM  10 STEPS/DECADE
520  PRINT 
540  REM 
1000  REM        1) ENTER ECHO PDF WE(M)
1020  REM 
1040  PRINT "BIG MUSKI LAKE ,81,NIGHT"
1060  PRINT "70 KC SIMRAD. ECHO PROCESSER AMP32 MAX"
1080  PRINT "INTERPOLATED ON LOG INCREMENTS, E=5.5*EXP(-A*M). A=LOG(10)/10.
1100  PRINT "1981, 14-16 M"
1120  REM  TRANSDUCER RADIUS=5.29 CM
1140 KR = 15.5
1160 M9 = 10
1180 R1 = 14
1200 R2 = 16
1220 MP = 3200
1240 DE = 1
1260 E0 = 32
1280 A =  LOG (10) / 10
1300  FOR M = 0 TO M9
1320  READ D
1340 ER(M) = D
1360  NEXT M
1380  DATA  0,.4,.83,1.8,6.66
1400  DATA  7.5,10.5,15.5,23
1420  DATA  34,71
1440  REM  LAST 3 VALUES ARE EXTRAPOLATION FROM SMALLER VALUES.
1460  REM  NF=FISH DENSITY, MP=NO OF PULSES. 
1480  REM  TO CHANGE RAW ECHOES TO ECHO PDF, WE(M)*NF=ER(M)*/(DE*VG*MP) 
1500  REM  FROM CLAY-MEDWIN 7.5.8
1520 VG = 6.2832 * (R2 ^ 3 - R1 ^ 3) / 3
1540  FOR M = 0 TO M9
1560 WE(M) = ER(M) / (DE * VG * MP)
1580 B(M) = E0 *  EXP ( - A * M)
1600  PRINT B(M),WE(M)
1620  NEXT M
1640  REM 
2000  REM        2) COMPUTE WT(B)
2020  REM 
2040  REM  USE CLAY EQ (8,9).
2060  REM  WT(B) IS PROPORTIONAL TO 1/(KR^2)
2080  REM  DEFINE KR=K*RT
2100 AG = 2.08
2120 H =  - .793
2140  REM  READ KR FROM PART 1
2160 G = AG / KR ^ 2
2180 M0 = 22
2200  FOR M = 0 TO M0
2220 B =  EXP ( - M * A)
2240 WT(M) = G * B ^ H
2260  NEXT M
2280  PRINT "M   B(M)       WT(M)"
2300  PRINT 
2320  FOR M = 0 TO M0
2340  PRINT M; TAB( 5); EXP ( - A * M); TAB( 21);WT(M)
2360  NEXT M
2380  PRINT 
2400  REM 
3000  REM        3) DECONVOLUTION
3020  REM 
3040  REM  DECONVOLVE WE(E) TO GET WF(E)
3060  REM  USE RECURSIVE POLYNOMIAL LONG DIVISION ALGORITHM.
3080  PRINT 
3100  PRINT "DECONVOLVE WE(E)/WT(B)"
3120  PRINT 
3140  PRINT "M     E(M)     WF(M)"
3160  PRINT 
3180 WF(0) = WE(0) / WT(0)
3200  PRINT "0"; TAB( 5);B(0); TAB( 21);WF(0) / A
3220 J1 = M9
3240  FOR J = 1 TO J1
3260 S = 0
3280  FOR M = 1 TO M0
3300 SC = 0
3320  IF J >  = M THEN SC = WT(M) * WF(J - M)
3340 S = S + SC
3360  NEXT M
3380 WF(J) =  - S / WT(0)
3400  IF J < M0 THEN WF(J) = WF(J) + WE(J) / WT(0)
3420  PRINT J; TAB( 5);B(J); TAB( 21);WF(J) / A
3440  NEXT J
3460  PRINT 
3480  END 
